home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 4 / PC World Interactive 4.iso / share / internet / LSMIRC61.EXE / evtext.in_ / evtext.in
INI File  |  1997-09-21  |  19KB  |  436 lines

  1. [script]
  2. n0=;
  3. n1=;      this section deals with all "on text" type events
  4. n2=;
  5. n3=alias freenum {
  6. n4=  ; return the first available line # for the repeat text detection
  7. n5=  ; for this nick on this channel and save it
  8. n6=  set %max $readini $mircdirrepeat.ini $1 [ maxsaid $+ [ $2 ] ]
  9. n7=  %c = 0
  10. n8=  :nx
  11. n9=  inc %c
  12. n10=  set %text $readini $mircdirrepeat.ini $1 [ [ $2 ] $+ [ %c ] ]
  13. n11=  if %text = $null {
  14. n12=    if (%c > %max) writeini $mircdirrepeat.ini $1 [ maxsaid $+ [ $2 ] ] %c
  15. n13=    return %c
  16. n14=  }
  17. n15=  else goto nx
  18. n16=}
  19. n17=alias justsaid {
  20. n18=  ; did nick $2 just say text $3- on channel $1?
  21. n19=  ; yeah, kinda sucks to have to use an .ini file
  22. n20=  ; the first one I did used all mIRC variables instead... it was uglier to look at
  23. n21=  ; but faster, but on a busy channel it could fill up the variables section very
  24. n22=  ; quickly, a very bad situation! (it's already pretty full as it is...  even with only
  25. n23=  ; one custom channel defined, along with the other options, it is already around
  26. n24=  ; 10k, or 30% full.  Oh well... this works too.
  27. n25=  %max = $readini $mircdirrepeat.ini $1 [ maxsaid $+ [ $2 ] ]
  28. n26=  if %max = $null return $null
  29. n27=  %num = %max + 1
  30. n28=  %found = $false
  31. n29=  :nx
  32. n30=  dec %num
  33. n31=  set %text2 $readini $mircdirrepeat.ini $1 [ [ $2 ] $+ [ %num ] ]
  34. n32=  if ((%text2 = $null) && (%found = $false)) dec %num
  35. n33=  if (%text2 != $null) set %found $true
  36. n34=  if (%text2 = $3-) return $readini $mircdirrepeat.ini $1 [ when $+ [ $2 ] $+ [ %num ] ]
  37. n35=  if %num > 1 goto nx
  38. n36=  return $null
  39. n37=}
  40. n38=alias afserv {
  41. n39=  if ($isfsban($2)) {
  42. n40=    inc %atfs [ $+ [ $mask($2,3) ] ] 1 | .timer 1 30 unset %atfs [ $+ [ $mask($2,3) ] ]
  43. n41=    if %atfs [ $+ [ $mask($2,3) ] ] > 3 {
  44. n42=      echo 4 -a Excessive file server requests from $1 $+ , placing on ignore for 5 minutes | alert
  45. n43=      .ignore -cp $mask($2,3) | .timer 1 300 .ignore -r $mask($2,3)
  46. n44=    }
  47. n45=    else {
  48. n46=      if (%fsbreason) {
  49. n47=        .ignore -cp $mask($2,3) | .timer 1 5 .ignore -r $mask($2,3)
  50. n48=        set %reason $fsbanreason($2)
  51. n49=        if %reason != $null raw -q notice $1 :You are banned from this file server: %reason
  52. n50=      }
  53. n51=      echo 4 -a $1 attempted to access your file server! 3(banned, ignoring) | alert
  54. n52=    }
  55. n53=  }
  56. n54=  elseif ($fserv($1) != $null) {
  57. n55=    raw -q notice $1 :One connection at a time please!
  58. n56=    .ignore -cp $mask($2,3) | .timer 1 5 .ignore -r $mask($2,3)
  59. n57=    altech -a %dis10 $+ $1 attempted to open multiple fserve connections! | alert
  60. n58=  }
  61. n59=  else {
  62. n60=    set %fsady [ $+ [ $1 ] ] $mask($2,3)
  63. n61=    fserve $1 %maxgets $3-
  64. n62=  }
  65. n63=}
  66. n64=alias ptxt  {
  67. n65=  if (%urd) {
  68. n66=    z | if $1 = t echo 1 $me < $+ $2 $+ > $strip(*3)
  69. n67=    else if $1 = n echo 1 $me NOTICE: 5,0- $+ $2 $+ - $strip(*3)
  70. n68=    else echo 6 $me 1 ACTION: * $+ $2 $strip(*3)
  71. n69=  }
  72. n70=}
  73. n71=alias iscensored {
  74. n72=  %n = 0
  75. n73=  :nx
  76. n74=  inc %n
  77. n75=  if (%cenword [ $+ [ %n ] ] != $null) {
  78. n76=    if %cenword [ $+ [ %n ] ] isin $strip($1-) return %n
  79. n77=    goto nx
  80. n78=  }
  81. n79=  return 0
  82. n80=}
  83. n81=alias doping {
  84. n82=  if (%numpings > 5) {
  85. n83=    altech -a %dis3 $+ Too many !ping requests! %dis4 Ignoring all of them for 60 seconds
  86. n84=    set %enableping $false
  87. n85=    .timer 1 60 set %enableping $true
  88. n86=    alert | halt
  89. n87=  }
  90. n88=  inc %numpings
  91. n89=  .timer 1 60 unset %numpings
  92. n90=  if (%tvhavepinged [ $+ [ $2 ] ] = $null) {
  93. n91=    set %tvhavepinged [ $+ [ $2 ] ] 1
  94. n92=    .timer 1 60 unset %tvhavepinged [ $+ [ $2 ] ]
  95. n93=    set %pingnick $1 | ping $nick
  96. n94=  }
  97. n95=  else {
  98. n96=    inc %tvhavepinged [ $+ [ $2 ] ]
  99. n97=    if (%tvhavepinged [ $+ [ $2 ] ] > 2) {
  100. n98=      altech -a %dis3 $+ Warning! %dis4 $1 is abusing the !ping feature (ignoring $2 for 60 seconds)
  101. n99=      .ignore -p $2 | .timer 1 60 .ignore -r $2 | alert
  102. n100=    }
  103. n101=  }
  104. n102=}
  105. n103=alias remrepeat {
  106. n104=  remini $mircdirrepeat.ini $1 $2
  107. n105=  remini $mircdirrepeat.ini $1 [ when $+ [ $2 ] ]
  108. n106=}
  109. n107=alias ontext {
  110. n108=  ; all sorts of things to do on text in the channel...
  111. n109=  ; this is done in an alias instead of an ON TEXT event because the same
  112. n110=  ; routine is done for a notice or action also.  It's in an alias so it can be 
  113. n111=  ; called in all 3 cases (one of these is enuff, don't think I wanna deal with 3!)
  114. n112=  if (%haveoptions [ $+ [ $3 ] ] ) set %optchan $3
  115. n113=  else set %optchan other
  116. n114=  utxt $1 $2 $3 $7-
  117. n115=  if (($me isin $7-) && (%alertnick) && ($active != $3)) echo 6 -a $2 $+ @ $+ $3 $+ :13,0 $7-
  118. n116=  if $left($7-,7) = 0,0°≡° enc $3 $+ _ $+ $1 $2 $7-
  119. n117=  if ((%autofserve1) && ($7- = %autoword1) && ($1 = t)) afserv $2 $6 %fservepath1
  120. n118=  if ((%autofserve2) && ($7- = %autoword2) && ($1 = t)) afserv $2 $6 %fservepath2
  121. n119=  if ((%tsunf [ $+ [ $3 ] ] ) && (**** iswm [ $strip($7-) ] ) && ($ulevel < 18)) {
  122. n120=    if $me isop $3 {
  123. n121=      kick $3 $2 Enough with the  characters!
  124. n122=      if (%ekick) { 
  125. n123=        if (%ckick) set %temp $3
  126. n124=        else set %temp -a 
  127. n125=        altech %temp %dis3 $+ Tsunami Flood! %dis4 Kicked $2 from $3
  128. n126=        alert
  129. n127=      }
  130. n128=      goto skip
  131. n129=    }
  132. n130=  }
  133. n131=  if $me !isop $3 goto skip
  134. n132=  if ((%censorall [ $+ [ %optchan ] ] ) || (%censorunrec [ $+ [ %optchan ] ] )) {
  135. n133=    if (($isfriend($2,$3)) && (%censorunrec [ $+ [ %optchan ] ] )) goto skip
  136. n134=    set %pos $iscensored($7-)
  137. n135=    if %pos != 0 { censorkick $2 $3 %cenword [ $+ [ %pos ] ] | dh }
  138. n136=  }
  139. n137=  if ($isfriend($2,$3)) goto skip
  140. n138=  if (%idlekick [ $+ [ $3 ] ] ) writeini $mircdiridle.ini $3 $2 $ctime
  141. n139=  if (%repeatkick [ $+ [ %optchan ] ] ) {
  142. n140=    if ($len($strip($7-)) <= 3) goto norepeat
  143. n141=    set %saidtext $replace($7-,[,$chr(32)) | set %saidtext $replace(%saidtext,],$chr(32))
  144. n142=    set %saidtext $replace(%saidtext,|,$chr(32))
  145. n143=    set %when $justsaid($3,$2,%saidtext)
  146. n144=    if %when != $null {
  147. n145=      if (%tvrkd [ $+ [ $chan [ $+ [ $nick ] ] ] ] != $true) {
  148. n146=        set %tvrkd [ $+ [ $chan [ $+ [ $nick ] ] ] ] $true
  149. n147=        .timer 1 5 unset %tvrkd [ $+ [ $chan [ $+ [ $nick ] ] ] ]
  150. n148=        kick $3 $2 you said that line $dur(%when) ago!
  151. n149=        if (%ekick) {
  152. n150=          if (%ckick) set %temp $2 %dis3
  153. n151=          else set %temp -a %dis3
  154. n152=          altech %temp $+ Repeat Kick! %dis4 Kicking $2 from $3
  155. n153=        }
  156. n154=        if (%srepeat = ding) ding
  157. n155=        elseif (%srepeat = speak) speak repeat detected, kicking $2 from $nonum($3)
  158. n156=        elseif (%srepeat != none) splay %srepeat
  159. n157=      }
  160. n158=    }
  161. n159=    set %rest $2 $+ $freenum($3,$2)
  162. n160=    writeini $mircdirrepeat.ini $3 %rest %saidtext
  163. n161=    writeini $mircdirrepeat.ini $3 [ when $+ [ %rest ] ] $ctime
  164. n162=    .timer 1 %repeatin [ $+ [ %optchan ] ] remrepeat $3 %rest
  165. n163=  }
  166. n164=  :norepeat
  167. n165=  if (%colorkick [ $+ [ %optchan ] ] ) {
  168. n166=    if $len($7-) != $len($strip($7-)) {
  169. n167=      kick $3 $2 %colorkickmsg
  170. n168=      if (%ekick) {
  171. n169=        if (%ckick) set %temp $3
  172. n170=        else set %temp -a
  173. n171=        altech %temp %dis3 $+ Color Kick! %dis4 Kicked $2 from $3
  174. n172=        if (%scolor = ding) ding
  175. n173=        elseif (%scolor = speak) speak Color Kick, kicked $2 from $nonum($3)
  176. n174=        elseif (%scolor != none) splay %scolor
  177. n175=      }
  178. n176=    }
  179. n177=  }
  180. n178=  if ((%antiexclam [ $+ [ %optchan ] ] ) && ($left($7,1) = !) && ($8 = $null)) {
  181. n179=    kick $3 $2 %antiecxlammsg
  182. n180=    if (%ekick) {
  183. n181=      if (%ckick) set %temp $3
  184. n182=      else set %temp -a
  185. n183=      altech %temp %dis3 $+ Ack!!  Exclamatory Commands! %dis4 Kicking $2 from $3
  186. n184=    }
  187. n185=    if (%sexclam = ding) ding
  188. n186=    elseif (%sexclam = speak) speak exclamatory command, kicking $2 from $nonum($3)
  189. n187=    elseif (%sexclam != none) splay %sexclam
  190. n188=    goto skip
  191. n189=  }
  192. n190=  if ((%capskicker [ $+ [ %optchan ] ] ) || (%longword [ $+ [ %optchan ] ] )) checktext $2 $3 $7-
  193. n191=  if (%textflood [ $+ [ %optchan ] ] ) {
  194. n192=    inc %tvtxtfl [ $+ [ $5 ] ] | .timer 1 %textin unset %tvtxtfl [ $+ [ $5 ] ]
  195. n193=    if (%tvtxtfl [ $+ [ $5 ] ] >= %textis) { 
  196. n194=      kick $3 $2 %textfloodmsg | unset %tvtxtfl [ $+ [ $5 ] ]
  197. n195=      if (%ekick) { 
  198. n196=        if (%ckick) set %temp $3
  199. n197=        else set %temp -a
  200. n198=        altech %temp %dis3 $+ Text Flood! %dis4 Kicking $2 from $3
  201. n199=      }
  202. n200=      if (%stext = ding) ding
  203. n201=      elseif (%stext = speak) speak text flood, kicking $2 from $nonum($3)
  204. n202=      elseif (%stext != none) splay %stext
  205. n203=      goto skip
  206. n204=    }
  207. n205=    elseif (%eflood) altech -s %dis16 $+ Text Flood detector watching $2 %dis17 $+ (offense %tvtxtfl [ $+ [ $5 ] ] $+ )
  208. n206=  }
  209. n207=  :skip
  210. n208=}
  211. n209=alias censorkick {
  212. n210=  if (%ckick) set %temp $2
  213. n211=  else set %temp -a
  214. n212=  if (%banafter [ $+ [ %optchan ] ] ) {
  215. n213=    inc %violations [ $+ [ $1 ] ]
  216. n214=    .timer 1 %censorin [ $+ [ %optchan ] ] unset %violations [ $+ [ $1 ] ]
  217. n215=    if ((%violations [ $+ [ $1 ] ] >= %censoris [ $+ [ %optchan ] ] )) {
  218. n216=      mode $2 +b-o $a3($1) $1 | kick $2 $1 %exccensormsg
  219. n217=      rtb $a3($1) $2
  220. n218=      if (%ekick) altech %temp %dis3 $+ Excessive Censor Violations! %dis4 Banning $1 on $2
  221. n219=      goto done
  222. n220=    }
  223. n221=  }
  224. n222=  kick $2 $1 Auto-Kick on the word " $+ $3- $+ "
  225. n223=  if (%ekick) altech %temp %dis3 $+ Censor Kick! %dis4 Kicking $1 from $2
  226. n224=  :done
  227. n225=}
  228. n226=alias checktext {
  229. n227=  %m = 0 | %caps = 0 | %spc = 0 | %len = $len($3-)
  230. n228=  :nx
  231. n229=  inc %m | set %temp $asc($mid($3-,%m,1))
  232. n230=  if %temp isnum 65-90 { inc %caps | inc %spc }
  233. n231=  elseif %temp != 32 inc %spc
  234. n232=  else %spc = 0
  235. n233=  if ((%spc > %longwordis) && (%longword [ $+ [ %optchan ] ] )) {
  236. n234=    ckick $1 $2 %longwordmsg
  237. n235=    if (%ekick) {
  238. n236=      if (%ckick) set %temp $2 %dis3
  239. n237=      else set %temp -a %dis3
  240. n238=      altech %temp $+ Long Words Suck! %dis4 Kicking $1 from $2
  241. n239=    }
  242. n240=    if (%slong = ding) ding
  243. n241=    elseif (%slong = speak) speak long word detected, kicking $1 from $nonum($2)
  244. n242=    elseif (%slong != none) splay %slong
  245. n243=    goto done
  246. n244=  }
  247. n245=  if %m < %len goto nx
  248. n246=  if ((%caps > %capsis) && (%capskicker [ $+ [ %optchan ] ] )) {
  249. n247=    ckick $1 $2 Ackk! %caps caps!
  250. n248=    if (%ekick) {
  251. n249=      if (%ckick) set %temp $2
  252. n250=      else set %temp -a
  253. n251=      altech %temp %dis3 $+ Excessive Caps! %dis4 Kicking $1 from $2
  254. n252=    }
  255. n253=    if (%scaps = ding) ding
  256. n254=    elseif (%scaps = speak) speak excessive caps, kicking $1 from $nonum($2)
  257. n255=    elseif (%scaps != none) splay %scaps
  258. n256=  }
  259. n257=  :done
  260. n258=}
  261. n259=alias ckick {
  262. n260=  if (%tvjustkicked [ $+ [ $a3($1) ] ] ) { 
  263. n261=    mode $2 -o+b $1 $a3($1) | rtb $a3($1) $2
  264. n262=  }
  265. n263=  else { 
  266. n264=    set %tvjustkicked [ $+ [ $a3($1) ] ] $true
  267. n265=    .timer 1 20 unset set %tvjustkicked [ $+ [ $a3($1) ] ]
  268. n266=  }
  269. n267=  kick $2 $1 $3-
  270. n268=}
  271. n269=alias utxt  {
  272. n270=  if (%urd) {
  273. n271=    z | if $1 = t echo 1 $me $3 $+ : < $+ $2 $+ > $strip(*4)
  274. n272=    else if $1 = n echo 1 $me $3 5,0NOTICE: - $+ $2 $+ - $strip(*4)
  275. n273=    else echo 1 $me $3 ACTION: * $+ $2 $strip(*4)
  276. n274=  }
  277. n275=}
  278. n276=on 1:CHAT:Enter your password.:{
  279. n277=  if (%autoconn [ $+ [ $nick ] ] ) {
  280. n278=    unset %autoconn [ $+ [ $nick ] ]
  281. n279=    msg =$nick %eggpass [ $+ [ $nick ] ]
  282. n280=  }
  283. n281=}
  284. n282=on 40:TEXT:.pass*:?:{
  285. n283=  set %nick $rnick.nick($nick)
  286. n284=  if %nick != $null {
  287. n285=    set %pass $readini $ul password %nick
  288. n286=    if %pass = $null {
  289. n287=      writeini $ul password %nick $2
  290. n288=      raw -q notice $nick :Your password has been saved.
  291. n289=      echo 4 -a Password set for %nick
  292. n290=    }
  293. n291=    else raw -q notice $nick :You already have a password set.  Use .chpass <oldpass> <newpass>
  294. n292=  }
  295. n293=  halt
  296. n294=}
  297. n295=on 20:TEXT:.info*:?:{
  298. n296=  if (%infolines) {
  299. n297=    set %rn $rnick.ady($fulladdress)
  300. n298=    if %rn != $null {
  301. n299=      ; change any [ or ] characters to a | cuz [ and ] mess up .ini files
  302. n300=      writeini $ul info %rn $replace( [ $replace($2-,[,|) ] ,],|)
  303. n301=      raw -q notice $nick :Info set to: $replace( [ $replace($2-,[,|) ] ,],|)
  304. n302=      echo 4 -s Info line set for %rn
  305. n303=    }
  306. n304=    halt
  307. n305=  }
  308. n306=}
  309. n307=on 40:TEXT:.chpass*:?:{
  310. n308=  set %nick $rnick.nick($nick) | if %nick = $null halt
  311. n309=  set %pass $readini $ul password %nick
  312. n310=  if ((%pass = $2) && ($3 != $null)) {
  313. n311=    if $3 = $null raw -q notice $nick :Syntax: .chpass <oldpass> <newpass>
  314. n312=    else {
  315. n313=      writeini $ul password %nick $3
  316. n314=      raw -q notice $nick :Your new password has been saved.
  317. n315=    }
  318. n316=  }
  319. n317=  halt
  320. n318=}
  321. n319=on 40:TEXT:.op*:?:{
  322. n320=  set %nick $rnick.nick($nick) | if %nick = $null halt
  323. n321=  set %pass $readini $ul password %nick
  324. n322=  if (($2 = %pass) && ($2 != $null)) {
  325. n323=    unset %msg
  326. n324=    if $comchan($nick,0) = 0 { raw -q notice $nick :Sorry, I'm not on any of the same channels as you! | halt }
  327. n325=    %i = 0
  328. n326=    :nx
  329. n327=    inc %i
  330. n328=    if $comchan($nick,%i) != $null {
  331. n329=      if $me !isop $comchan($nick,%i) set %msg I am not a channel op
  332. n330=      else {
  333. n331=        if (($isop($nick,$comchan($nick,%i))) && (%oppass [ $+ [ $comchan($nick,%i) ] ] )) {
  334. n332=          if $nick isop $comchan($nick,%i) set %msg you are already an op
  335. n333=          else { set %msg giving ops | mode $comchan($nick,%i) +o $nick }
  336. n334=        }
  337. n335=      }
  338. n336=      if %msg != $null raw -q PRIVMSG $nick :Common channel $comchan($nick,%i) $+ : %msg
  339. n337=      goto nx
  340. n338=    }
  341. n339=  }
  342. n340=  else echo 4 -s $nick requested ops.  Password incorrect, did not op.
  343. n341=  halt
  344. n342=}
  345. n343=on 1:TEXT:!PING:?:if (%enableping) { doping $nick $mask($fulladdress,4) | halt }
  346. n344=on 1:TEXT:!PING:#:if (%enableping) doping $nick $a4($nick)
  347. n345=on 1:TEXT:SEEN*:#:{
  348. n346=  utxt t $nick $chan $1-
  349. n347=  if (%tvignoreseen [ $+ [ $a3($nick) ] ] ) goto done
  350. n348=  if (%seen) {
  351. n349=    inc %tvdidseen [ $+ [ $a3($nick) ] ]
  352. n350=    if %tvdidseen [ $+ [ $a3($nick) ] ] > 3 {
  353. n351=      msg $chan $nick $+ : too many seen requests...  requests from your site will be ignored for 60 seconds
  354. n352=      set %tvignoreseen [ $+ [ $a3($nick) ] ] $true
  355. n353=      .timer 1 30 unset %tvignoreseen [ $+ [ $a3($nick) ] ]
  356. n354=    }
  357. n355=    .timer 1 20 unset %tvdidseen [ $+ [ $a3($nick) ] ]
  358. n356=    if $2 = $nick msg $chan $nick $+ : Trying to find yourself, eh?
  359. n357=    elseif $2 = $me msg $chan $nick $+ : Yeah, whenever I look in a mirror...
  360. n358=    elseif $2 ison $chan msg $chan $nick $+ : $2 is on $chan right now!
  361. n359=    else {
  362. n360=      %i = 0
  363. n361=      :nx
  364. n362=      inc %i
  365. n363=      set %ady $readini $ul address [ [ $2 ] $+ [ %i ] ]
  366. n364=      if %ady != $null {
  367. n365=        if $ialchan(%ady,$chan,1) != $null {
  368. n366=          msg $chan $nick $+ : $2 is $ialchan(%ady,$chan,1).nick $+ , and $ialchan(%ady,$chan,1).nick is on $chan right now!!!
  369. n367=          goto done
  370. n368=        }
  371. n369=        goto nx
  372. n370=      }
  373. n371=    }
  374. n372=    set %temp $readini $ul seen $2
  375. n373=    if %temp = $null msg $chan $nick $+ : I do not know who $2 is.
  376. n374=    else msg $chan $nick $+ : $2 was last here $dur(%temp) ago
  377. n375=  }
  378. n376=  :done
  379. n377=}
  380. n378=;shut-up ban
  381. n379=on @+16:TEXT:*:#:utxt t $nick $chan $1- | kick $chan $nick %shutupmsg
  382. n380=on @+16:NOTICE:*:#:utxt n $nick $chan $1- | kick $chan $nick %shutupmsg
  383. n381=on @+16:ACTION:*:#:utxt a $nick $chan $1- | kick $chan $nick %shutupmsg :>
  384. n382=on 1!:TEXT:*:#:ontext t $nick $chan $ulevel $site $fulladdress $1-
  385. n383=on 1!:ACTION:*:#:ontext a $nick $chan $ulevel $site $fulladdress $1- | :>
  386. n384=on 1!:NOTICE:*:#:ontext n $nick $chan $ulevel $site $fulladdress $1-
  387. n385=on 19:TEXT:.chan:?:{
  388. n386=  if (%tvdidchan [ $+ [ $mask($fulladdress,2) ] ] ) halt
  389. n387=  set %tvdidchan [ $+ [ $mask($fulladdress,2) ] ] $true
  390. n388=  .timer 1 5 unset %tvdidchan [ $+ [ $mask($fulladdress,2) ] ] 
  391. n389=  raw -q notice $nick :I am currently on $dde $ddename channels "" 
  392. n390=  raw -q notice $nick :I am using $server
  393. n391=  halt
  394. n392=}
  395. n393=on 19:TEXT:.invite*:?:{
  396. n394=  if (%tvdidinvite [ $+ [ $mask($fulladdress,2) ] ] ) halt
  397. n395=  set %tvdidinvite [ $+ [ $mask($fulladdress,2) ] ] $true
  398. n396=  .timer 1 5 unset %tvdidinvite [ $+ [ $mask($fulladdress,2) ] ] 
  399. n397=  if $left($2,1) = $chr(35) set %chan $2
  400. n398=  else set %chan $chr(35) $+ $2
  401. n399=  if $isfriend($nick,%chan) {
  402. n400=    if $me ison %chan { invite $nick $2 | echo 4 -a Invited $nick to %chan (requested) }
  403. n401=    else raw -q notice $nick :I am not on %chan
  404. n402=  }
  405. n403=  halt
  406. n404=}
  407. n405=on 1:TEXT:*:?:{
  408. n406=  ptxt t $nick $1-
  409. n407=  if $left($1-,7) = 0,0°≡° enc ns $nick $1-
  410. n408=  if ((%autofserve1) && ($1- = %autoword1)) { afserv $nick $fulladdress %fservepath1 | halt }
  411. n409=  if ((%autofserve2) && ($1- = %autoword2)) { afserv $nick $fulladdress %fservepath2 | halt }
  412. n410=  if ($away) {
  413. n411=    inc %msgs
  414. n412=    if (%awaylog) {
  415. n413=      writeini $mircdiroptions\away.ini away [ From $+ [ %msgs ] ] $fulladdress
  416. n414=      writeini $mircdiroptions\away.ini away [ Time $+ [ %msgs ] ] $realtime $adate
  417. n415=      writeini $mircdiroptions\away.ini away [ Message $+ [ %msgs ] ] $1-
  418. n416=      echo 5 -a $realtime Message %msgs received from $nick $+ , saved
  419. n417=    }
  420. n418=    else echo 5 -a $realtime Message %msgs received from $nick $+ , (msglog off)
  421. n419=    if (%tvhvm [ $+ [ $nick ] ] != $true) {
  422. n420=      if (%awaylog) msg $nick Sorry, I'm away.  I've been away for $dur(%since) ( $+ %amsg $+ ), but your message has been saved.
  423. n421=      else msg $nick Sorry, I'm away.  I've been away for $dur(%since) ( $+ %amsg $+ ), and I am currently not logging messages.
  424. n422=      set %tvhvm [ $+ [ $nick ] ] $true | .timer 1 30 unset %tvhvm [ $+ [ $nick ] ]
  425. n423=    }
  426. n424=    if (%closeaway) { close -m $nick | halt }
  427. n425=  }
  428. n426=  :>
  429. n427=}
  430. n428=on 1:ACTION:*:?:{
  431. n429=  ptxt a $nick $1-
  432. n430=  if $left($1-,7) = 0,0°≡° enc na $nick $1- | :>
  433. n431=}
  434. n432=on 1:NOTICE:*:?:ptxt n $nick $1-
  435. n433=on 1:SNOTICE:*:echo %dis18 - $+ $server $+ - %dis19 $+ $1- | halt
  436.